With the rapid growth in popularity of cloud-based services such as virtual desktop infrastructure (VDI), mobile/web applications, streaming content delivery, online gaming, and the like, effectively managing the energy use of computing deployments that host such services has become a priority for deployment operators (e.g., IT organizations and cloud service providers) seeking to contain their energy costs and reduce their environmental footprint. These computing deployments typically consist of complex systems of interconnected server, storage, and networking components. Accordingly, it has proven challenging to minimize deployment-wide energy consumption while at the same time satisfying performance requirements.
Several researchers have studied aspects of energy management for pieces of a computing deployment, such as the server tier, the storage tier, etc. However, these studies address the individual pieces in isolation, and thus do not provide an integrated solution for managing energy use of a deployment as a whole. Further, these existing studies generally focus on enforcing server-side performance constraints—in other words, constraints based on server-side performance metrics such as CPU utilization or throughput. Such server-side performance metrics often fail to properly reflect the quality of an end-user's experience with a cloud-based service, which is of prime importance for interactive services like VDI.